package com.itheima.service.db.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.domain.db.QuestionnaireResult;
import com.itheima.domain.vo.PageBeanVo;
import com.itheima.mapper.QuestionnaireResultMapper;
import com.itheima.service.db.QuestionnaireResultService;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;


@Service
public class QuestionnaireResultServiceImpl implements QuestionnaireResultService {

    @Autowired
    private QuestionnaireResultMapper questionnaireResultMapper;

    //显示结果列表
    @Override
    public PageBeanVo report(Integer page, Integer pagesize) {
        IPage page1 = new Page(page, pagesize);
        page1 = questionnaireResultMapper.selectPage(page1, null);
        return new PageBeanVo(page, pagesize, page1.getTotal(), page1.getRecords());
    }

    //根据分数查找
    @Override
    public QuestionnaireResult findByScore(Long score, Long questionnaireId) {
        QueryWrapper<QuestionnaireResult> wrapper = new QueryWrapper<>();
        wrapper.eq("questionnaire_id", questionnaireId);
        List<QuestionnaireResult> questionnaireResultList = questionnaireResultMapper.selectList(wrapper);
        for (QuestionnaireResult questionnaireResult : questionnaireResultList) {
            String scope = questionnaireResult.getScope();
            String[] split = scope.split(",");
            Integer integer1 = Integer.valueOf(split[0]);
            Integer integer2 = Integer.valueOf(split[1]);
            if (integer1 <= score && integer2 >= score) {
                return questionnaireResult;
            }
        }
        return null;
    }

    //根据id查找
    @Override
    public QuestionnaireResult findByResultId(Long resultId) {
        QuestionnaireResult questionnaireResult = questionnaireResultMapper.selectById(resultId);
        return questionnaireResult;
    }

    //保存
    @Override
    public void save(QuestionnaireResult questionnaireResult) {
        questionnaireResultMapper.insert(questionnaireResult);
    }

    //删除报告
    @Override
    public void deleteReport(Long id) {
        questionnaireResultMapper.deleteById(id);
    }

    //修改报告
    @Override
    public void updateReport(QuestionnaireResult questionnaireResult) {
        questionnaireResultMapper.updateById(questionnaireResult);
    }
}
